package com.haircut.sys.vo.user;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

@Setter
@Getter
@ApiModel("UserVo")
public class UserVo {
    /**
     * 用户id
     */
    @ApiModelProperty("用户id")
    private String id;

    /**
     * 登录账号
     */
   @ApiModelProperty("登录账号")
   @NotNull(message = "登录账号必须填写")
   @Length(min = 1,max = 10,message = "登录账号范围[1~10]个字符")
    private String userAccount;

    /**
     * 手机号码
     */
    @ApiModelProperty("用户手机号码")
//    @NotNull(message = "手机号码必须填写")
    @Length(min = 5,max = 20,message = "手机号码范围[5~20]")
    private String userMobile;

    /**
     * 真实姓名
     */
   @ApiModelProperty("真实名称")
   @NotNull(message = "真实姓名必须填写")
   @Length(min = 1,max = 50,message = "真实姓名范围为[1~40]个字符")
    private String realName;

    /**
     * 性别(1、男 2、女)
     */
    @ApiModelProperty("用户性别(1、男 2、女)")
    @NotNull(message = "用户性别")
    @Range(min = 1,max = 2,message = "用户性别范围[1~2]")
    private Integer sex;

    /**
     * 婚姻状态(1、已婚 2、未婚)
     */
    @ApiModelProperty("婚姻状态(1、已婚 2、未婚)")
    @Range(min = 1,max = 2,message = "婚姻状态([1~2]")
    private Integer maritalStatus;


    /**
     * '角色id'
     */
    @ApiModelProperty("角色id")
    @NotNull(message = "角色Id必须填写")
    private String roleId;


    /**
     * '部门id'
     */
    @ApiModelProperty("部门id")
    @NotNull(message = "部门必须填写")
    private String deptId;

    /**
     * 角色名称
     */
    @ApiModelProperty("角色名称")
    private String roleName;
    /**
     * 部门名称
     */
    @ApiModelProperty("部门名称")
    private String deptName;
    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss", timezone = "America/Los_Angeles")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createDate;

    @NotNull(message = "技师分成比例不能未空")
    @DecimalMin(value = "0",message = "技师分成比例必须大于等于0")
    @DecimalMax(value = "100",message = "技师分成比例必须小于等于100")
    private BigDecimal technicianRate;
}
